Інтегрування систем диференціальних рівнянь. Розрахунок перехідного процесу для RLC-ланок

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
ЗІ
Кафедра:
Кафедра КСА

Інформація про роботу

Рік:
2014
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Комп’ютерні методи дослідження систем керування
Група:
СІ-22

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра КСА Звіт з лабораторної роботи №6 з курсу “Комп’ютерні методи дослідження систем керування” Інтегрування систем диференціальних рівнянь. Розрахунок перехідного процесу для RLC-ланок Варіант №16 Львів-2014 Завдання: Для вказаної RCL-ланки скласти систему диференціальних рівнянь та виконати розрахунок перехідного процесу ланки модифікованим методом Ейлера. Згідно отриманих даних побудувати графік перехідного процесу вихідної напруги . Вхідні дані:   В  Гц  Ом,  Ом,  Ом ,  Ф,  Ф,  Ф  сек,  Метод розвязу: Модифікований метод Ейлера. Схема RLC-ланки:  Код програми: #include <iostream> #include <math.h> #include <fstream> using namespace std; void main(){ // параметри схеми double R1 = 5, R2 = 4,R3 = 7; // опір double C1 = 300E-6, C2 = 150e-6, C3 = 200e-6; // реактивні елементи double U_max = 100, U1, U2; // напруги double pi = 3.1415; double f = 50; // частота double w = 2 * pi * f; // циклічна частота double time = 0.2; // час інтегрування double h = 1e-5; // крок інтегрування double t, x[3]={0,0,0}, y[3] = {0, 0, 0}; fstream file; file.open("D://616.txt", ios_base::out | ios_base::trunc); for (t = 0; t <= (time - h / 2); t += h) { U1 = U_max * sin(w*t); y[0] = x[0] + h * (((x[1]-x[0]+x[2])/R2)/C1); y[1] = x[1] + h * (((R2*(U1-x[1]-x[2])-R1*(x[1]-x[0]+x[2]))/R1*R2)/C2); y[2] = x[2] + h * ((R3*R2*(U1-x[1]-x[2])-R1*R3*(x[1]-x[0]+x[2])-R1*R2*x[2])/(R1*R2*R3)/C3); x[0] = x[0] + (1/2.0)*h * ((((x[1]-x[0]+x[2])/R2)/C1)+(((x[1]-y[0]+x[2])/R2)/C1)); x[1] = x[1] + (1/2.0)*h * ( (((R2*(U1-x[1]-x[2])-R1*(x[1]-x[0]+x[2]))/R1*R2)/C2)+ (((R2*(U1-x[1]-y[2])-R1*(x[1]-x[0]+y[2]))/R1*R2)/C2)); x[2] = x[2] + (1/2.0)*h * (((R3*R2*(U1-y[1]-x[2])-R1*R3*(y[1]-y[0]+x[2])-R1*R2*x[2])/(R1*R2*R3)/C3)); U2=x[2]; file << t << "\t" << U2 << endl; } cout << "All done! Check your output file!" << endl; file.close(); }; Результати: 
Антиботан аватар за замовчуванням

09.04.2015 00:04

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини